docker tips¶
docker以root身份进入容器¶
docker exec -it -u root 62044c564952 bash
docker容器中文乱码, 修改容器编码¶
locale -a
查看容器语言环境
临时修改 LANG=C.UTF-8
永久修改, 在Dockerfile添加一行内容
ENV LANG C.UTF-8
重新构建镜像即可
修改容器时区¶
比如, 修改为Asia/Shanghai
/usr/share/zoneinfo/Asia/Shanghai
文件不存在则需要安装 tzdata
# 根据实际系统, 调整命令, 安装之后清楚缓存
RUN apt-get update && apt-get install tzdata cron && apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 如果使用创建软链接的方式, 镜像构建的时候文件不存在的时候不会报错, 只有进入容器才能发现时区没有修改成功, 软链接无效
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' >/etc/timezone
# 使用cp, 文件不存在, 构建镜像的时候就会报错提示
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
容器中使用定时任务¶
Dockerfile
RUN echo "定时任务" > /var/spool/cron/crontabs/root && \
touch /var/log/cron.log && \
# 权限及属主
chmod 600 /var/spool/cron/crontabs/root && \
chown root:crontab /var/spool/cron/crontabs/root && \
此外, 需要保证cron一直运行, 可以使用supervisor
,
或者构建镜像的时候添加一行
RUN cron # (未测试)
定时任务中如果涉及到中文问题, 需要设置编码, 可以在执行命令之前,
修改一下编码 export LANG="C.UTF-8"